package com.explorati.LeetCode18.deleteNode;

/**
 * @ Author : Weijian_Wang
 * @ Date : Created in 17:43 2020/9/13 0013
 * @ Description ：
 */
public class Solution3 {
    public class ListNode {
        int val;
        ListNode next;
        ListNode(int x) { val = x; }
    }

    /**
     * 给定单向链表的头指针和一个要删除的节点的值，定义一个函数删除该节点。
     * 返回删除后的链表的头节点。
     * @param head
     * @param val
     * @return
     */
    public ListNode deleteNode(ListNode head, int val) {

      //由于只存在一个要删除的元素
        if(head == null) {
            return null;
        }
        //由于只存在一个要删除的元素
        if(head.val == val) {
            return head.next;
        }
        head.next = deleteNode(head.next, val);
        return head;
    }

}
